<?php 
/**
 * 后台登陆模型
 * @author 杨帆 
 */
class AuserModel extends Model{
    //指定表名
    public $table = 'auser';
    //指定验证规则
    public $validate = array(
        //用户名\密码\验证码不能为空;具体方法查看手册
        array('username','nonull','用户名不能为空','2','3'),  
        array('password','nonull','密码不能为空','2','3'),
        array('code','nonull','验证码不能为空','1','3'),
 );
    /**
     * 验证登陆
     */
    public function vLogin(){
//      p($POST);die;
        //接入POST数据并赋值;
        $username = $_POST['username'];
        $password = md5($_POST['password']);
        //执行上面的自动验证规则,只要验证完毕即证明POST有数据提交;
        if(!$this->create()) return false;
        
        
        //在数据库中查找相关数据
        $userinfo = $this->where("username = '{$username}'")->find();
        //判断用户名和密码是否错误
        //判断$userinfo是否存在即判断了用户名是否正确，$password是否等于$userinfo['password']即可判断。
        if(!$userinfo || $password != $userinfo['password']){
            $this->error = '用户名或密码错误';
            return false;
        }
            return $userinfo;
    }
    /**
     * 判断是否后台用户
     */
    public function isAdmin($username){
       $isadmin = $this->where("username='{$username}'")->field('is_admin')->find();
       return $isadmin['is_admin'];
    }
    
    /**
     * 判断验证码
     */
    public function iscode(){
            //将post中传递过来的code字符串值变为大写;
            $code = strtoupper($_POST['code']);
            //将$code与session的code比较是否相同,session的code是工具code类中传递的;
            if($code != $_SESSION['code']){
                //返回false表示验证失败,后面的代码不执行
                return false;
        }
        return $code;
    }
    
    /**
     * 验证注册
     */
    public function addData(){
        p($_POST);die;
        //接入POST数据并赋值;
        $username = $_POST['username_reg'];
        $password = md5($_POST['password_reg1']);
        //将post中传递过来的code字符串值变为大写;
        $code = strtoupper($_POST['code']);
        //执行上面的自动验证规则,只要验证完毕即证明POST有数据提交;
        if(!$this->create()) return false;
        //将$code与session的code比较是否相同,session的code是工具code类中传递的;
        if($code != $_SESSION['code']){
            //将错误信息,存入$this->error方便前台调用.
            $this->error = '验证码不正确';
            //返回false表示验证失败,后面的代码不执行
            return false;
            }   
        //在数据库中查找相关数据
        $userinfo = $this->where("username = '{$username}'")->find();
        
        //判断用户名和密码是否错误
        //判断$userinfo是否存在即判断了用户名是否正确
        if($userinfo){
            $this->error = '用户名已存在';
            return false;
        }
        //添加数据
        return $this->add(); 
    }
 }
 
 
 
 
 
 
 
 
 
 
 